package besteAukera;

import java.util.*;

public class Balioa {
private Vector<Integer> bitBektorea=new Vector<Integer>();
private Vector<Integer> birakoOsBat=new Vector<Integer>();
private Vector<Integer> bururakoak=new Vector<Integer>();
private int bitKopurua;


public Balioa(int bitKop){
	bitKopurua=bitKop;
	
	//tratatu birako osagarria edo positiboa denean
	for(int i=0;i<bitKopurua;i++){
		bitBektorea.add(0);
		birakoOsBat.add(0);
	}
    bururakoak.add(1);
	for(int i=1;i<bitKopurua;i++){
		bururakoak.add(0);
	}
}

public Vector<Integer> getBalioBitarra(Integer hamartarra1){
	Integer hamartarra=Math.abs(hamartarra1);
	int hondarra=0;
	int i=0;
	while (hamartarra>0){
		hondarra=hamartarra%2;
		hamartarra=hamartarra/2;
		bitBektorea.set(i, hondarra);
		i++;
	}
	
	if((int)hamartarra1<0){
		i=0;
		hamartarra1=Math.abs(hamartarra1);
		while (hamartarra1>0){
			hondarra=hamartarra1%2;
			hamartarra1=hamartarra1/2;
			bitBektorea.set(i, hondarra);
			i++;
		}
		
		for(int indi=0;indi<bitKopurua;indi++){
		if(bitBektorea.get(indi).equals(0))
			bitBektorea.set(indi, 1);
		else if(bitBektorea.get(indi).equals(1))
			bitBektorea.set(indi, 0);
	}
		
	for(int ind=0;ind<bitKopurua;ind++){
		if((bitBektorea.get(ind).equals(1))&&(bururakoak.get(ind).equals(1))){
			bitBektorea.set(ind,new Integer(0));
			if(ind+1<bitKopurua){
			bururakoak.set(ind+1, 1);}}
		else
		bitBektorea.set(ind, (bururakoak.get(ind)+bitBektorea.get(ind)));
	}
	
	}
	
	return bitBektorea;
}

}